package com.baizhi;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
@MapperScan("com.baizhi.mapper")
public class CmfzdemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(CmfzdemoApplication.class, args);
    }

    //配置分页查询
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作， true调回到首页，false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量，默认 500 条，-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
    /**
     * @Bean 写在启动类中 或者 和@Configuration 配合 可以实现创建对象 并且把对象放在Spring工厂中
     * 1.@Bean 所加的方法 的方法返回值 是要创建的对象类型
     * 2.方法的名字就是要创建的对象的名字
     * 3.要创建的对象在方法中new出来 通过return 就可以放到Spring工厂中
     *
     * 例如创建一个名字为zhangsan的管理员对象
     */
    //    1.创建过滤器的对象
    /*@Bean
    public AdminFilter adminFilter(){
        return new AdminFilter();
    }

    *//**
     * 在@Bean 所加的方法上 如果方法形参对应的对象在工厂中存在  Spring会自动装配一个
     * @return
     *//*
    public FilterRegistrationBean filterRegistrationBean(AdminFilter adminFilter){
        *//*创建一个注册器*//*
        FilterRegistrationBean<Filter> registrationBean=new FilterRegistrationBean<>();
        //        设置一个过滤器 要设置一个过滤器对象 怎么拿到对象  可以通过自动装配 也可以使用方法名
        registrationBean.setFilter(adminFilter);
        //        设置请求的拦截路径  可以写多个路径
        registrationBean.addUrlPatterns("/admin/*");

//        设置过滤器的名字
        registrationBean.setName("adminFilter");

        return registrationBean
    }*/
}
